toolitemgroup: Fix initial state
authorMatthias Clasen <mclasen@redhat.com>
Thu, 19 Nov 2015 11:04:26 +0000 (06:04 -0500)
committerMatthias Clasen <mclasen@redhat.com>
Thu, 19 Nov 2015 11:05:15 +0000 (06:05 -0500)
GtkToolItemGroup starts out as non-collapsed, make the CSS node
state reflect that.

gtk/gtktoolitemgroup.c

index e50be76d9fb002099bae505ad63b8d7cc2869d86..c4dbbcbbe5066af4594656d43a283a1aff113cbe 100644 (file)
@@ -380,6 +380,21 @@ G_GNUC_BEGIN_IGNORE_DEPRECATIONS
 G_GNUC_END_IGNORE_DEPRECATIONS
 }
 
+static void
+update_arrow_state (GtkToolItemGroup *group)
+{
+  GtkToolItemGroupPrivate *priv = group->priv;
+  GtkStateFlags state;
+
+  state = gtk_widget_get_state_flags (GTK_WIDGET (group));
+
+  if (priv->collapsed)
+    state &= ~GTK_STATE_FLAG_CHECKED;
+  else
+    state |= GTK_STATE_FLAG_CHECKED;
+  gtk_css_node_set_state (priv->arrow_node, state);
+}
+
 static void
 gtk_tool_item_group_init (GtkToolItemGroup *group)
 {
@@ -394,6 +409,7 @@ gtk_tool_item_group_init (GtkToolItemGroup *group)
   priv->children = NULL;
   priv->header_spacing = DEFAULT_HEADER_SPACING;
   priv->expander_size = DEFAULT_EXPANDER_SIZE;
+  priv->collapsed = DEFAULT_COLLAPSED;
 
   priv->label_widget = gtk_label_new (NULL);
   gtk_widget_set_halign (priv->label_widget, GTK_ALIGN_START);
@@ -426,6 +442,8 @@ G_GNUC_END_IGNORE_DEPRECATIONS
   gtk_css_node_set_parent (priv->arrow_node, widget_node);
   gtk_css_node_set_state (priv->arrow_node, gtk_css_node_get_state (widget_node));
   g_object_unref (priv->arrow_node);
+
+  update_arrow_state (group);
 }
 
 static void
@@ -1287,22 +1305,6 @@ gtk_tool_item_group_style_updated (GtkWidget *widget)
   GTK_WIDGET_CLASS (gtk_tool_item_group_parent_class)->style_updated (widget);
 }
 
-static void
-update_arrow_state (GtkToolItemGroup *group)
-{
-  GtkToolItemGroupPrivate *priv = group->priv;
-  GtkStateFlags state;
-
-  state = gtk_widget_get_state_flags (GTK_WIDGET (group));
-
-  if (priv->collapsed)
-    state &= ~GTK_STATE_FLAG_CHECKED;
-  else
-    state |= GTK_STATE_FLAG_CHECKED;
-
-  gtk_css_node_set_state (priv->arrow_node, state);
-}
-
 static void
 gtk_tool_item_group_state_flags_changed (GtkWidget     *widget,
                                          GtkStateFlags  previous_flags)